// %1585221976315:%
/*
 * Copyright [2018] [Alex/libo(liboms@hotmail.com)]
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *  http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.hyts.template.common;


/**
 * @title AbstractFileWriter.java
 * @package com.hyts.codegen.generator
 * @description TODO
 * @author libo/Alex
 * @email liboms@hotmail.com/liboware@163.com
 * @date 2018年5月10日
* @version V1.0
 */
public interface AbstractFileWriter<T> {
    /**
    * <b>writerInternal-内部写文件-写在项目路径上</b>
    * <p>内部写文件-写在项目路径上，可以进行访问或者其他用途</p>
    * @param classpath classpath路径直接生成到项目
    * @param object 传入的泛型对象-屏蔽和抽象传值的可能
    * @return
    */
    String writerInternal(String classpath, T object);

    /**
     * <b>writerExternal-外部写文件-写在文件系统可以写到系统所在任何位置</b>
     * <p>外部写文件-写在文件系统可以写到系统所在任何位置</p>
     * @param outputFile outputFile路径直接生成到文件系统
     * @param object 传入的泛型对象-屏蔽和抽象传值的可能
     * @return
     */
    String writerExternal(String outputFile, T object);
}
